Лабораторная работа №1. Система контроля версий git. Язык разметки Markdown

Дисциплина: Математическое моделирование

Ганина Т. С.

Группа НФИбд-01-22

Российский университет дружбы народов, Москва, Россия

21 февраля 2025

Информация

Докладчик

  • Ганина Таисия Сергеевна
  • Студентка 3го курса, группа НФИбд-01-22
  • Фундаментальная информатика и информационные технологии
  • Российский университет дружбы народов
  • Ссылка на репозиторий гитхаба tsganina

Вводная часть

Цели и задачи

Целью данной работы является приобретение навыков работы с системой контроля версий git. Работа с репозиториями, внесение изменений, индексация, коммиты.

Задание

  1. Подготовить пространство для работы.
  2. Создать проект.
  3. Внести изменения в проект.
  4. Провести индексацию изменений
  5. Работа с тегами версий.
  6. Отменить локальные изменения (до индексации).
  7. Отменить проиндексированные изменения (перед коммитом).
  8. Отменить коммит.
  9. Удалить коммиты из ветки.
  10. Удаление тега.
  11. Внести изменения в коммиты.
  12. Переместить файлы.

Задание

  1. Рассмотреть Git внутри: Каталог .git.
  2. Работа непосредственно с объектами git.
  3. Навигация по веткам. Изменения в ветке master.
  4. Слияние веток. Создание конфликта.
  5. Разрешение конфликтов.
  6. Сброс ветки style. Сброс ветки master.
  7. Перебазирование.
  8. Слияние в ветку master.
  9. Клонирование репозиториев. Просмотр клонированного репозитория.
  10. Что такое origin? Удаленные ветки. Изменение оригинального репозитория.
  11. Слияние извлеченных изменений.
  12. Извлечение общих изменений.

Работа с git

Создание проекта

Команда git status, чтобы проверить текущее состояние репозитория

Одно изменение проиндексировано, второе нет

Вместо поиска до хэш, использовала ^, обозначающее «родитель v1». Вместо обозначения v1^ можно использовать v1~1. Это обозначение можно определить как «первую версию предшествующую v1»

git tag v1

Отменить локальные изменения (до индексации)

Отменить проиндексированные изменения (перед коммитом)

Работа непосредственно с объектами git. Посмотрим последний коммит в репозиторий. SHA1 хэш в нашей системе. Мы можем вывести дерево каталогов, ссылка на который идет в коммите. Это должно быть описание файлов (верхнего уровня) в нашем проекте (для конкретного коммита). Вывод каталога lib, вывод файла hello.html.

Работа непосредственно с объектами git

Самостоятельное исследование 1

Самостоятельное исследование 2

Потом используем команду git checkout для переключения между ветками.

Переключения между ветками

Кратчайший маршрут до разрыва соединения

Создадим файл README в ветке master. Сделаем коммит изменений README.md в ветку master. Просмотр отличающихся веток.

git log –graph –all

Путем периодического слияния ветки master с веткой style мы можем переносить из master любые изменения и поддерживать совместимость изменений style с изменениями в основной ветке. Но что если изменения в ветке master конфликтуют с изменениями в style?

Вернемся к ветке style и попытаемся объединить ее с новой веткой master

Внесём изменения в lib/hello.html

Вернемся на ветке style к точке перед тем, как мы слили ее с веткой master. Мы можем сбросить ветку к любому коммиту. По сути, это изменение указателя ветки на любую точку дерева коммитов. В этом случае мы хотим вернуться в ветке style в точку перед слиянием с master. Нам необходимо найти последний коммит перед слиянием.

Сброс ветки style

Сброс ветки master

Мы поддерживали соответствие ветки style с веткой master (с помощью rebase), теперь давайте сольем изменения style в ветку master.

Слияние в ветку master

Создадим клон репозитория hello

Просмотр клонированного репозитория

Мы видим, что клонированный репозиторий знает об имени по умолчанию удаленного репозитория. Давайте посмотрим, можем ли мы получить более подробную информацию об имени по умолчанию.

Более подробная информация об имени по умолчанию

Научиться извлекать изменения из удаленного репозитория

cat README.md

Добавим локальную ветку, которая отслеживает удаленную ветку

Отправка изменений

Извлечение общих изменений

Написание отчета по лабораторной работе в формате Markdown.

Заголовок и нумерованный список

Маркированный список

Жирный текст

Работа с изображениями

Вставка кода

Ссылки

Результаты

В ходе данной работы я приобрела практические навыки работы с системой контроля версий git. Работа с репозиториями, внесение изменений, индексация, коммиты.